<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
//  function createPerson(name) {
//     var o = new Object();
//     o.name = name;
//     o.getName = function () {
//         console.log(this.name);
//     };
//     return o;
// }

// var person1 = createPerson('kevin');
// console.log(person1)

// function Person (name) {
//     this.name = name
//     if(typeof this.getName != 'function') {
//         Person.prototype = {
//             constructor: Person,
//             getName: function() {
//                 console.log(this.name)
//             }
//         }
//     }
// }


// var person1 = new Person('kiven') 

// var person2 = new Person('daisy')
// // 报错并没有该方法
// person1.getName()
// // 注释掉上面的代码，这句是可以执行的。
// person2.getName()

// function Person(name) {
//     this.name = name;
//     if(typeof this.getName != 'function') {
//         Person.prototype = {
//             constructor: Person,
//             getName: function() {
//                 console.log(this.name)
//             }
//         }
//         return new Person(name)
//     }
// }

// var person1 = new Person('kiven')
// var person2 = new Person('daisy')

// person1.getName()
// person2.getName()

// function Person (name) {
//     var  o = new Object()
//     o.name = name
//     o.getName = function() {
//         console.log(this.name)
//     }

//     return o;
// }

// var person1 = new Person('kevin')
// var person2 = new Person('daisy')
// person1.getName()
// person2.getName()\

// function Person (name) {
//     var  o = new Object()
//     o.name = name
//     o.getName = function() {
//         console.log(this.name)
//     }

//     return o;
// }

// var person1 = new Person('kevin')

// console.log( person1 instanceof Person)
// console.log( person1 instanceof Object)

// function SpecialArray () {
//     var values = new Array();
//     for (let i = 0,len = arguments.length; i < len; i++ ) {
//         values.push(arguments[i])
//     }
//     values.toPipedString = function() {
//         return this.join("|")

//     }
//     return values
// }

// var colors = new SpecialArray('red','blue','green')
// var colors2 = SpecialArray('red2', 'blue2', 'green2');

// console.log(colors);
// console.log(colors.toPipedString()); // red|blue|green
// console.log(colors2);
// console.log(colors2.toPipedString()); // red2|blue2|green2

function person (name) {
    var o = new Object()
    o.sayName = function() {
        console.log(name)
    }
    return o;
}

var person1 = person('kiven')

person1.sayName()

person1.name = 'daisy'

person1.sayName()

console.log(person1.name)

</script>
</html>